<?

/*
*
*   Excalibur Content Management System
*   Copyright © 2008 Egor "Sontan" Kuryanovich
*
*   Based on Explay Engine v2.0 by Golovdinov Alexander
*
*   Official site: www.excms.ru
*   Contact e-mail: support@excms.ru
*
*   GNU General Public License original source:
*   http://www.gnu.org/licenses/gpl-3.0.html
*
*/


header('Cache-control: no-cache');
header('Content-type: text/html; charset=utf-8');

$EXCMS = 'work';

error_reporting (0);

include $_SERVER['DOCUMENT_ROOT'].'/engine/settings.php';
include $_SERVER['DOCUMENT_ROOT'].'/engine/mysql.class.php';
$db = new DB($server, $dbusername, $dbpassword, $dbname);
$db->connect();

if (!$mainsettings = $db->query ('SELECT * FROM site_main')) 
{ 
	print '<center><b>Невозможно взять данные из БД!<br>Обратитесь к администратору сайта!</b>'; 
	exit; 
}

$SITE = $db->fetch_array ($mainsettings);
$theme = $SITE['site_theme'];

//Если есть активная сессия
if (isset($_COOKIE['login']) && isset ($_COOKIE['pass']) && $_COOKIE['login'] != "false" && $_COOKIE['pass'] != "false") 
{
	// Экранируем данные сессии
	$GLOBAL_USER_LOGIN = addslashes($_COOKIE['login']);
	$GLOBAL_USER_PASS = addslashes($_COOKIE['pass']);

	// Если данные существуют то пытаемся загрузить информацию о голосующем
	if ($GLOBAL_USER_LOGIN != "" && $GLOBAL_USER_PASS != "")
	{
		$S_USER = $db->query ('SELECT * FROM '.DB_PEREFIX."_users WHERE user_login = '$GLOBAL_USER_LOGIN' AND user_password = '$GLOBAL_USER_PASS'");
	}
	
	// Если запрос удачен то загружаем информацию о голосующем в $GLOBAL_USER
	if ($db->num_rows ($S_USER) == 1) 
	{
		$GLOBAL_USER = $db->fetch_array ($S_USER);
	}
}



// Если голосующий пользователь не существует или не прислана цель голосования
if (!isset($GLOBAL_USER)) exit;
if (!isset($_POST['blog_name']) || !isset($_POST['value'])) exit;



// Пытаемся загрузить блог за который голосуют
$id = addslashes($_POST['blog_name']);
$get_com = $db->query ("SELECT cat_rating FROM ".DB_PEREFIX."_art_category WHERE cat_name = '$id'");

// Если блог существует то загружаем его рэйтинг
if ($db->num_rows($get_com) != 1) exit;
list($karma) = $db->fetch_row($get_com);

// Если карма голосующего меньше ноля и он не администратор то выходим
if ($GLOBAL_USER['user_karma'] < 0 && $GLOBAL_USER['user_group'] != "admin") exit;

// Определяем вес голоса
$unit = 1;
if ($GLOBAL_USER['user_karma'] > 20 || $GLOBAL_USER['user_group'] == "admin") $unit = 2;
if ($GLOBAL_USER['user_karma'] > 50)	$unit = 3;
if ($GLOBAL_USER['user_karma'] > 100)	$unit = 4;

// Добавляем случайную дробную часть
$unit = $unit.'.'.mt_rand(0,50);

// Максимальный вес голоса равен 5
if ($unit > 5) $unit = 4;

// Применяем вес голоса на карму цели
if ($_POST['value'] == 1)		$new = $karma + $unit;
elseif ($_POST['value'] == 2)	$new = $karma - $unit;
else exit;

// Добавляем голос
$new = number_format($new, 2, '.', '');

// Обновляем запись о блоге
if ($db->query("UPDATE ".DB_PEREFIX."_art_category SET cat_rating = '$new' WHERE cat_name = '$id'")) 
{
	// Загружаем шаблон
	$file = file_get_contents ($_SERVER['DOCUMENT_ROOT']."/themes/$theme/articles/blog_karma_cant.tpl");
	// Обновляем переменные в шаблоне
	$print = str_replace ("{BLOG_KARMA_VALUE}", number_format($new, 2, ',', ''), $file);
	// Выводим блок рэйтинга
	print $print;
}
